首页 > 试题广场 >

字符串的相邻字符去重

[编程题]字符串的相邻字符去重
  • 热度指数:1597 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个仅由英文小写字母组成的字符串s,将相邻且相同的两个字符删掉构成新的字符串,重复删除操作直至生成不符合删除条件的字符串并返回。

示例1

输入

"bcaac"

输出

"b"

说明

bcaac执行删除操作后变为bcc,再次执行删除操作变为b,此时不再符合删除条件故返回b。   
示例2

输入

"ab"

输出

"ab"

说明

原串即不符合删除条件,故直接返回。   
示例3

输入

"bcaaac"

输出

"bcac"

说明

bcaaac执行删除操作后变为 bcac ,此时不再符合删除条件 
class Solution:
    def removeDuplicates(self , s: str) -> str:
        # write code here
        stack = []
        for x in s:
            if not stack&nbs***bsp;stack[-1] != x:
                stack.append(x)
            else:
                stack.pop()
        return ''.join(stack)

发表于 2022-07-08 23:14:48 回复(0)
class Solution:
    def removeDuplicates(self , s: str) -> str:
        # write code here
        res = ''
        for ch in s:
            if res == '':
                res += ch
            elif ch == res[-1]:
                res = res[:-1]
            else:
                res += ch
        return res

发表于 2022-04-22 15:35:33 回复(0)

问题信息

难度:
2条回答 1805浏览

热门推荐

通过挑战的用户

查看代码